package com.group4.datafactorybackend.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author 卑微小峰
 * @date 2022/8/17
 * @description 枚举类
 */
public class MyEnumClass {

    @Getter
    @AllArgsConstructor
    public enum StatusEnum {
        /** 发布状态枚举值 **/
        NOT_RELEASE(40000,"未发布"),
        HAVE_RELEASE(40001,"已发布"),
        HAVE_DISABLE(40002,"已停用")
        ;
        private final Integer code;
        private final String message;
    }

    @Getter
    @AllArgsConstructor
    public enum QuoteStatusEnum {
        /** 引用枚举值 **/
        OPEN_QUOTE(40010,"开启引用"),
        CLOSE_QUOTE(40011,"关闭引用")
        ;
        private final Integer code;
        private final String message;
    }

    @Getter
    @AllArgsConstructor
    public enum ApiAgreementEnum {
        /** 接口协议枚举值 **/
        API_AGREEMENT_HTTP(40020,"HTTP"),
        API_AGREEMENT_HTTPS(40021,"HTTPS")
        ;
        private final Integer code;
        private final String message;
    }

    @Getter
    @AllArgsConstructor
    public enum DataTypeEnum {
        /** 数据类型枚举类 **/
        DATA_TYPE_STRING(40030, "String"),
        DATA_TYPE_INT(40031, "Int"),
        DATA_TYPE_FLOAT(40032, "Float"),
        DATA_TYPE_ARRAY(40033, "Array"),
        DATA_TYPE_OBJECT(40034, "Object"),
        DATA_TYPE_ENUM(40035, "Enum"),
        ;
        private final Integer code;
        private final String message;
    }

    @Getter
    @AllArgsConstructor
    public enum DataIsRequiredEnum {
        /** 数据是否必须枚举值 **/
        DATA_NOT_REQUITED(40040,"数据不必填，可为空"),
        DATA_REQUIRED(40041,"数据必填，不可为空")
        ;
        private final Integer code;
        private final String message;
    }

    @Getter
    @AllArgsConstructor
    public enum ApiParamPositionEnum {
        /** 接口参数位置枚举值 **/
        PARAM_POSITION_QUERY(40050,"query"),
        PARAM_POSITION_HEADER(40051,"header"),
        PARAM_POSITION_BODY(40052,"body"),
        PARAM_POSITION_RETURN(40053,"return")
        ;
        private final Integer code;
        private final String message;
    }

    @Getter
    @AllArgsConstructor
    public enum RequestTypeEnum {
        /** 请求类型枚举值 **/
        REQUEST_METHOD_GET(40060,"GET"),
        REQUEST_METHOD_POST(40061,"POST")
        ;
        private final Integer code;
        private final String message;
    }

    @Getter
    @AllArgsConstructor
    public enum MenuEnum {
        /** 菜单枚举值 **/
        MENU_DATA_SOURCE_MANAGEMENT(40070,"数据源管理"),
        MENU_API_MANAGEMENT(40071,"接口管理"),
        MENU_DATABASE_MANAGEMENT(40072,"数据库管理"),

        MENU_DATA_CRITERION_MANAGEMENT(40080,"数据标准管理"),
        MENU_DATA_CRITERION_DIRECTORY(40081,"数据标准目录"),
        MENU_STOPWATCH_MANAGEMENT(40082,"码表管理"),

        MENU_DATA_ASSERT_MANAGEMENT(40090,"数据资产管理"),

        MENU_SCRIPT_MANAGEMENT(40100,"脚本管理"),

        MENU_TASK_MANAGEMENT(40110,"任务管理")
        ;
        private final Integer code;
        private final String message;
    }
}
